package org.dxy.types.controller;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dxy.api.dto.response.R;
import org.dxy.api.dto.vo.MenuItemVo;
import org.dxy.api.dto.vo.MenuMetaVo;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

/**
 * @ description:
 * @ author: dxy
 * @ createTime: 2025/7/8 21:34
 */
@Slf4j
@RestController
@RequestMapping("/api/menu")
@RequiredArgsConstructor
public class MenuController {

    @GetMapping("/list")
    public R doLogin() {

        List<MenuItemVo> menuList = new ArrayList<>();


        // 首页
        MenuItemVo menu1 = MenuItemVo.builder()
                .path("/home/index")
                .name("home")
                .component("/home/index")
                .meta(MenuMetaVo.builder()
                        .icon("HomeFilled")
                        .title("首页")
                        .isLink("")
                        .isAffix(true)
                        .isHide(false)
                        .isFull(false)
                        .isKeepAlive(true)
                        .build())
                .build();

        // 数据大屏
        MenuItemVo menu2 = MenuItemVo.builder()
                .path("/dataScreen")
                .name("dataScreen")
                .component("/dataScreen/index")
                .meta( MenuMetaVo.builder()
                        .icon("Histogram")
                        .title("数据大屏")
                        .isLink("")
                        .isHide(false)
                        .isFull(true)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .build();

        // AI大模型
        MenuItemVo aiChatMenu = MenuItemVo.builder()
                .path("/aiChat")
                .name("aiChat")
                .component("/aiChat/index")
                .meta(MenuMetaVo.builder()
                        .icon("ChatDotRound")
                        .title("AI大模型")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .build();


        // 1. 构建系统管理菜单 (父菜单)
        MenuItemVo systemMenu = MenuItemVo.builder()
                .path("/system")
                .name("system")
                .redirect("/system/accountManage")
                .meta(MenuMetaVo.builder()
                        .icon("Tools")
                        .title("系统管理")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 2. 构建子菜单并添加到父菜单
        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/accountManage")
                        .name("accountManage")
                        .component("/system/accountManage/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("账号管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/roleManage")
                        .name("roleManage")
                        .component("/system/roleManage/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("角色管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/menuMange")
                        .name("menuMange")
                        .component("/system/menuMange/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("菜单管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/departmentManage")
                        .name("departmentManage")
                        .component("/system/departmentManage/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("部门管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/dictManage")
                        .name("dictManage")
                        .component("/system/dictManage/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("字典管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/timingTask")
                        .name("timingTask")
                        .component("/system/timingTask/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("定时任务")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/systemLog")
                        .name("systemLog")
                        .component("/system/systemLog/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("系统日志")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );




        // ==================== 3. 基础数据 ====================
        MenuItemVo basicDataMenu = MenuItemVo.builder()
                .path("/basicData")
                .name("basicData")
                .redirect("/basicData/productionLayout/factory")
                .meta(MenuMetaVo.builder()
                        .icon("DataBoard")
                        .title("基础数据")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 3.1 生产布局管理
        MenuItemVo productionLayoutMenu = MenuItemVo.builder()
                .path("/basicData/productionLayout")
                .name("productionLayout")
                .redirect("/basicData/productionLayout/factory")
                .meta(MenuMetaVo.builder()
                        .icon("OfficeBuilding")
                        .title("生产布局管理")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 3.1.1 工厂管理
        productionLayoutMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/productionLayout/factory")
                        .name("factoryManage")
                        .component("/factory/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("工厂管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 3.1.2 车间管理
        productionLayoutMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/productionLayout/workshop")
                        .name("workshopManage")
                        .component("/workshop/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("车间管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 3.1.3 产线管理
        productionLayoutMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/productionLayout/productionLine")
                        .name("productionLineManage")
                        .component("/productionLine/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("产线管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 3.1.4 工位管理
        productionLayoutMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/productionLayout/workstation")
                        .name("workstationManage")
                        .component("/workstation/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("工位管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 3.2 物料管理
        MenuItemVo materialMenu = MenuItemVo.builder()
                .path("/basicData/material")
                .name("materialManage")
                .redirect("/basicData/material/group")
                .meta(MenuMetaVo.builder()
                        .icon("Box")
                        .title("物料管理")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 3.2.1 物料群组
        materialMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/material/group")
                        .name("materialGroup")
                        .component("/basicData/material/group/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("物料群组")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 3.2.2 产品物料
        materialMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/material/product")
                        .name("productMaterial")
                        .component("/basicData/material/product/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("产品物料")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 3.2.3 BOM管理
        materialMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/material/bom")
                        .name("bomManage")
                        .component("/basicData/material/bom/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("BOM管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 3.2.4 替代料管理
        materialMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/material/substitute")
                        .name("substituteMaterial")
                        .component("/basicData/material/substitute/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("替代料管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 3.3 产品管理
        MenuItemVo productManageMenu = MenuItemVo.builder()
                .path("/basicData/product")
                .name("productManage")
                .redirect("/basicData/product/info")
                .meta(MenuMetaVo.builder()
                        .icon("Goods")
                        .title("产品管理")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 3.3.1 产品信息维护
        productManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/product/info")
                        .name("productInfo")
                        .component("/product/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("产品信息维护")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 3.3.2 产品规格配置
        productManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/product/spec")
                        .name("productSpec")
                        .component("/product/spec/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("产品规格配置")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 3.3.3 产品类别管理
        productManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/product/category")
                        .name("productCategory")
                        .component("/product/category/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("产品类别管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );



        // 将子菜单添加到基础数据菜单
        basicDataMenu.getChildren().add(productionLayoutMenu);
        basicDataMenu.getChildren().add(materialMenu);
        basicDataMenu.getChildren().add(productManageMenu);

        // 3.4 单位管理
        basicDataMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/unitManage")
                        .name("unitManage")
                        .component("/unitManage/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("单位管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );



        // 3.5 参数字典
        basicDataMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/basicData/paramManage")
                        .name("paramManage")
                        .component("/paramManage/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("参数字典")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // ==================== 4. 工艺管理 ====================
        MenuItemVo processManageMenu = MenuItemVo.builder()
                .path("/processManage")
                .name("processManage")
                .redirect("/processManage/route")
                .meta(MenuMetaVo.builder()
                        .icon("Operation")
                        .title("工艺管理")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 4.1 工艺路线管理
        processManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/processManage/route")
                        .name("routeManage")
                        .component("/route/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("工艺路线管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 4.2 工序管理
        processManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/processManage/process")
                        .name("processStep")
                        .component("/process/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("工序管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // ==================== 5. 生产管理 ====================
        MenuItemVo productionManageMenu = MenuItemVo.builder()
                .path("/productionManage")
                .name("productionManage")
                .redirect("/productionManage/workOrder")
                .meta(MenuMetaVo.builder()
                        .icon("Coordinate")
                        .title("生产管理")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 5.1 工单管理
        productionManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/productionManage/workOrder")
                        .name("workOrderManage")
                        .component("/workorder/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("工单管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 5.2 工单排产
        productionManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/productionManage/scheduling")
                        .name("orderScheduling")
                        .component("/production/scheduling/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("工单排产")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 5.3 生产任务监控
        productionManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/productionManage/taskMonitor")
                        .name("taskMonitor")
                        .component("/production/taskMonitor/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("生产任务监控")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 5.4 工位进出站
        productionManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/productionManage/workstationOperation")
                        .name("workstationOperation")
                        .component("/production/workstationOperation/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Position")
                                .title("工位进出站")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 5.5 工位报表
        productionManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/productionManage/workstationReport")
                        .name("workstationReport")
                        .component("/production/workstationOperation/report")
                        .meta(MenuMetaVo.builder()
                                .icon("TrendCharts")
                                .title("工位报表")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 5.6 生产进度追踪
        productionManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/productionManage/progressTrack")
                        .name("progressTrack")
                        .component("/production/progressTrack/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("生产进度追踪")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 5.7 假期管理
        productionManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/productionManage/holidayManage")
                        .name("holidayManage")
                        .component("/production/holidayManage/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Calendar")
                                .title("假期管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // ==================== 6. 设备管理 ====================
        MenuItemVo equipmentManageMenu = MenuItemVo.builder()
                .path("/equipmentManage")
                .name("equipmentManage")
                .redirect("/equipmentManage/type")
                .meta(MenuMetaVo.builder()
                        .icon("Platform")
                        .title("设备管理")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 6.1 设备类型
        equipmentManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/equipmentManage/type")
                        .name("equipmentType")
                        .component("/equipment/type/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("设备类型")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 6.2 设备台账
        equipmentManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/equipmentManage/ledger")
                        .name("equipmentLedger")
                        .component("/equipment/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("设备台账")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 6.3 工装夹具
        equipmentManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/equipmentManage/tooling")
                        .name("toolingFixture")
                        .component("/equipment/tooling/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("工装夹具")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 6.4 点检保养
        MenuItemVo maintenanceMenu = MenuItemVo.builder()
                .path("/equipmentManage/maintenance")
                .name("maintenanceManage")
                .redirect("/equipmentManage/maintenance/project")
                .meta(MenuMetaVo.builder()
                        .icon("Menu")
                        .title("点检保养")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 6.4.1 项目维护
        maintenanceMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/equipmentManage/maintenance/project")
                        .name("maintenanceProject")
                        .component("/equipment/maintenance/project/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("项目维护")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 6.4.2 项目表单
        maintenanceMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/equipmentManage/maintenance/form")
                        .name("maintenanceForm")
                        .component("/equipment/maintenance/form/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("项目表单")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 6.4.3 计划配置
        maintenanceMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/equipmentManage/maintenance/plan")
                        .name("maintenancePlan")
                        .component("/equipment/maintenance/plan/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("计划配置")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 6.4.4 点检保养记录
        maintenanceMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/equipmentManage/maintenance/record")
                        .name("maintenanceRecord")
                        .component("/equipment/maintenance/record/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("点检保养记录")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        equipmentManageMenu.getChildren().add(maintenanceMenu);

        // ==================== 7. 库存管理 ====================
        MenuItemVo inventoryManageMenu = MenuItemVo.builder()
                .path("/inventoryManage")
                .name("inventoryManage")
                .redirect("/inventoryManage/rawMaterial")
                .meta(MenuMetaVo.builder()
                        .icon("Suitcase")
                        .title("库存管理")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 7.1 原材料库存
        inventoryManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/inventoryManage/rawMaterial")
                        .name("rawMaterialInventory")
                        .component("/inventory/rawMaterial/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("原材料库存")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 7.2 成品库存
        inventoryManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/inventoryManage/finishedProduct")
                        .name("finishedProductInventory")
                        .component("/inventory/finishedProduct/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("成品库存")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 7.3 库存调拨/入库/出库
        inventoryManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/inventoryManage/transaction")
                        .name("inventoryTransaction")
                        .component("/inventory/transaction/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("库存调拨/入库/出库")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // ==================== 8. 质量管理 ====================
        MenuItemVo qualityManageMenu = MenuItemVo.builder()
                .path("/qualityManage")
                .name("qualityManage")
                .redirect("/qualityManage/standard")
                .meta(MenuMetaVo.builder()
                        .icon("Medal")
                        .title("质量管理")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 8.1 质检标准管理
        qualityManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/qualityManage/standard")
                        .name("qualityStandard")
                        .component("/quality/standard/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("质检标准管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 8.2 生产质检记录
        qualityManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/qualityManage/inspection")
                        .name("qualityInspection")
                        .component("/quality/inspection/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("生产质检记录")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 8.3 不合格品处理
        qualityManageMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/qualityManage/nonconforming")
                        .name("nonconformingProduct")
                        .component("/quality/nonconforming/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("不合格品处理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // ==================== 9. 报表中心 ====================
        MenuItemVo reportCenterMenu = MenuItemVo.builder()
                .path("/reportCenter")
                .name("reportCenter")
                .redirect("/reportCenter/production")
                .meta(MenuMetaVo.builder()
                        .icon("TrendCharts")
                        .title("报表中心")
                        .isLink("")
                        .isHide(false)
                        .isFull(false)
                        .isAffix(false)
                        .isKeepAlive(true)
                        .build())
                .children(new ArrayList<>())
                .build();

        // 9.1 生产报表
        reportCenterMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/reportCenter/production")
                        .name("productionReport")
                        .component("/report/production/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("生产报表")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 9.2 设备报表
        reportCenterMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/reportCenter/equipment")
                        .name("equipmentReport")
                        .component("/report/equipment/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("设备报表")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 9.3 质量报表
        reportCenterMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/reportCenter/quality")
                        .name("qualityReport")
                        .component("/report/quality/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("质量报表")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 9.4 库存报表
        reportCenterMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/reportCenter/inventory")
                        .name("inventoryReport")
                        .component("/report/inventory/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("库存报表")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // ==================== 10. 系统配置 ====================
        // 更新系统配置菜单标题和内容
        systemMenu.getMeta().setTitle("系统配置");
        systemMenu.getChildren().clear(); // 清空原有子菜单

        // 10.1 用户管理
        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/userManage")
                        .name("userManage")
                        .component("/system/userManage/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("用户管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 10.2 角色管理
        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/roleManage")
                        .name("roleManage")
                        .component("/system/roleManage/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("角色管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 10.3 系统组织
        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/organization")
                        .name("systemOrganization")
                        .component("/system/organization/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("系统组织")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 10.4 消息管理
        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/messageManage")
                        .name("messageManage")
                        .component("/system/messageManage/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("消息管理")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );

        // 10.6 操作日志
        systemMenu.getChildren().add(
                MenuItemVo.builder()
                        .path("/system/operationLog")
                        .name("operationLog")
                        .component("/system/operationLog/index")
                        .meta(MenuMetaVo.builder()
                                .icon("Menu")
                                .title("操作日志")
                                .isLink("")
                                .isHide(false)
                                .isFull(false)
                                .isAffix(false)
                                .isKeepAlive(true)
                                .build())
                        .build()
        );


        // ==================== 添加所有菜单到主列表 ====================
        menuList.add(menu1);                    // 1. 首页
        menuList.add(menu2);                    // 2. 数据大屏
        menuList.add(aiChatMenu);               // 3. AI大模型
        menuList.add(basicDataMenu);            // 4. 基础数据
        menuList.add(processManageMenu);        // 4. 工艺管理
        menuList.add(productionManageMenu);     // 5. 生产管理
        menuList.add(equipmentManageMenu);      // 6. 设备管理
        menuList.add(inventoryManageMenu);      // 7. 库存管理
        menuList.add(qualityManageMenu);        // 8. 质量管理
        menuList.add(reportCenterMenu);         // 9. 报表中心
        menuList.add(systemMenu);               // 10. 系统配置




        return R.ok(menuList, "登录成功");
    }
}
